/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.referentiel.services.impl;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import fr.generali.accueilclient.commun.exception.AccueilClientBusinessException;
import fr.generali.accueilclient.produit.param.ITableProduit;
import fr.generali.accueilclient.referentiel.ReferentielEnum;
import fr.generali.accueilclient.referentiel.services.IReferentielClientService;
import fr.generali.accueilclient.referentiel.services.IReferentielContratService;
import fr.generali.accueilclient.referentiel.services.IReferentielProduitsService;
import fr.generali.accueilclient.referentiel.services.IReferentielService;
import fr.generali.accueilclient.table.param.ITableParam;

/**
 * Implémentation de {@link IReferentielService}
 * 
 * @author Guillaume Lancelin
 */
@Service
public class ReferentielService implements IReferentielService {

    /**
     * Appel referentiel service produits
     */
    @Autowired
    @Qualifier("referentielProduitsService")
    private IReferentielProduitsService referentielProduitsService;

    /**
     * Applel referentiel service contrats
     */
    @Autowired
    @Qualifier("referentielContratService")
    private IReferentielContratService referentielContratService;

    /**
     * Appel referentiel service client
     */
    @Autowired
    @Qualifier("referentielClientService")
    private IReferentielClientService referentielClientService;

    /**
     * {@inheritDoc}
     */
    public Map<ReferentielEnum, Map<String, String>> chargerReferentielClient() throws AccueilClientBusinessException {

        return referentielClientService.chargerReferentielClient();
    }

    /**
     * {@inheritDoc}
     */
    public Map<ReferentielEnum, Map<String, String>> chargerReferentielContrat() throws AccueilClientBusinessException {

        return referentielContratService.chargerReferentielContrat();
    }

    /**
     * {@inheritDoc}
     */
    public Map<ReferentielEnum, Map<ITableParam, ITableProduit>> chargerReferentielProduits()
                    throws AccueilClientBusinessException {

        return referentielProduitsService.chargerReferentielProduits();
    }
    
    
    /**
     * 
     * {@inheritDoc}
     */
    public Map<ReferentielEnum, Map<ITableParam, ITableProduit>> chargerReferentielProduitsTypeSante()
                    throws AccueilClientBusinessException {
       
        return referentielProduitsService.chargerReferentielProduitsTypeSante();
    }
}
